package com.ruoyi.mongo.cet4.repository;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.repository.NoRepositoryBean;

import java.util.List;
import java.util.Optional;

// @NoRepositoryBean 表示该接口不是具体实体的 Repository
@NoRepositoryBean
public interface DynamicCollectionRepository<T, ID> extends MongoRepository<T, ID> {

    // 自定义方法：从指定集合中查询所有数据
    List<T> findAllInCollection(String collectionName);

    // 自定义方法：从指定集合中按条件查询
    List<T> findByFieldInCollection(String fieldName, Object value, String collectionName);

    // 自定义方法：从指定集合中查询单个结果
    Optional<T> findOneInCollection(String fieldName, Object value, String collectionName);

    // 支持分页查询
    Page<T> findAllInCollection(Pageable pageable, String collectionName);
}
